var _c = require('./utils');
//https://github.com/felixge/node-formidable
var formidable = require('formidable');
var fs = require('fs');

var responseText = 'ok!<script>\
						\nwindow.parent.postMessage({\
							\n\t\t imgSrc : "{0}",\
							\n\t\t action : true,\
						\n\t}, "*");\
					\n</script>';

exports.isFileUpload = function(req, res, uploadCfg){
	if(req.headers['content-type'].indexOf('multipart/form-data') != -1){
		console.log('------------------------------------------');
		console.log('[router]正在接受文件上传……');

		// https://github.com/felixge/node-formidable
	    var form = new formidable.IncomingForm();
	    form.uploadDir = uploadCfg.uploadDir;
		form.parse(req, function(err, fields, files) {
			var absolutePath = files.fileUpload.path + ".jpg";
			if(files.fileUpload.type == 'image/jpeg'){
				fs.renameSync(files.fileUpload.path, absolutePath);
			}
			var relaPathArr = absolutePath.split('\\');
			var relaPath2 = relaPathArr.pop(), relaPath1 = relaPathArr.pop(),
			replaPath = relaPath1 + '/' + relaPath2;

			console.log('[router]文件上传成功……保存位置：' +  absolutePath);
			console.log('------------------------------------------');	
			res.writeHead(200, {'Content-Type' : 'text/html'})
			res.write(responseText.format(replaPath));
			res.end();
		});

		return true;
	}
    
    return false;
}
//https://github.com/developmentseed/node-sqlite3/wiki
var sqlite3 = require('sqlite3').verbose();
var querystring = require('querystring');

// , URL = require('url'), fs = require('fs')
// 防止 SQL 注入
// 用参数绑定或者ORM， 别手动拼接sql字符串,其他诸如like注意过滤下原数据里的%
// 1、输入时过滤一些常见的参数，入or and insert 之类的
// 2、输出时转义内容
// 3、尽量使用POST 方法提交表单
// 4、验证表单数据源的合法性


// 设置跨域访问  
var header = {
	'Content-Type': 'text/html',
	"Access-Control-Allow-Origin" : "*",
	"Access-Control-Allow-Methods" : "PUT,POST,GET,DELETE,OPTIONS"
};

// 请求的参数被转换为 json 格式，
// 例如输入链接：http://localhost:8000/?name=fred&sex=male
// 在控制台输出打印信息：qs: { name: ‘fred’, sex: ‘male’ }	
toJSON : function(){
	var arr = this.url.split("?");
	var str = arr[1];
	return require("querystring").parse(arr);
},
// // http://fred.easymorse.com/?p=1213
// var path = require('path');
// var mime = require('mime');          //需安装mime执行命令:npm install mime

// exports.downloadBinFile = function(req, res){
// 	var file = __dirname + '/upload-folder/test.txt';

// 	var filename = path.basename(file);
// 	var mimetype = mime.lookup(file);        //匹配文件格式

// 	res.setHeader('Content-disposition', 'attachment; filename=' + filename);
// 	res.setHeader('Content-type', mimetype);

// 	var filestream = fs.createReadStream(file);
// 	filestream.on('data', function(chunk){
// 		res.write(chunk);
// 	});
// 	filestream.on('end', function(){
// 		res.end();
// 	});
// }

// exports.donwloadZip = function(req, res) {
// //    require('path').exists(userFile, function(exists) {
// //        console.log("exists: ", exists);
// //        if (exists) {
// //            fs.readFile(userFile, "binary", function(err, data) {
// //                res.writeHead(200, {"Content-Type": "application/zip"});
// //                res.write(data, "binary");
// //                res.end();
// //            });
// //        }
// //    });
//     //上面的代码可以处理小文件，如果文件太大的话，由于 data 数据会保存在内存中，可能会造成内存不足
//     require('path').exists(userFile, function(exists) {
//         console.log("exists: ", exists);
//         if (exists) {
//             var fileStream = fs.createReadStream(userFile);
//             res.writeHead(200, {"Content-Type": "application/zip"});
//             fileStream.pipe(res);
//             fileStream.on("end", function() {
//                 res.end();
//             })
//         }
//     });
// }
 
